package com.gee.spring.cloud.aerospace.simulate.core.satellite.telemetry.common;

import com.gee.spring.cloud.aerospace.simulate.core.satellite.telemetry.task.TmArcEndTask;
import com.gee.spring.cloud.aerospace.simulate.core.satellite.telemetry.task.TmArcHandler;
import com.gee.spring.cloud.aerospace.simulate.core.satellite.telemetry.task.TmArcStartTask;
import com.gee.spring.cloud.aerospace.simulate.core.satellite.telemetry.task.TmFrameTask;
import io.netty.util.HashedWheelTimer;
import io.netty.util.Timeout;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.Instant;

/**
 * @author gee
 * @since 2025/5/15 10:52
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SateTraceContext {

    private String traceKey;

    private String devCode;

    private SatelliteContext satelliteContext;

    private HashedWheelTimer tmArcTimer;

    private HashedWheelTimer tmFrameTimer;

    private TmArcStartTask tmArcStartTask;

    private TmArcEndTask tmArcEndTask;

    private Timeout tmArcStartTimeout;

    private Timeout tmArcEndTimeout;

    private TmFrameTask tmFrameTask;

    private Timeout tmFrameTimeout;

    private Instant traceBeginTime;

    private Instant traceEndTime;

    private TmArcHandler tmArcHandler;

}
